import datetime

from app.models.model import get_db

db = get_db()


# 系统用户信息表
class User(db.Model):
    __tablename__ = 'user'  # 表名
    # 用户ID
    user_id = db.Column(db.String(20), primary_key=True)
    # 用户编号
    user_code = db.Column(db.String(10), unique=True, nullable=False)
    # 账号
    username = db.Column(db.String(10), nullable=False)
    # 密码(SHA256哈希值)
    password = db.Column(db.String(128), nullable=False)
    # 电话号码
    phone = db.Column(db.String(11), nullable=False)
    # 邮箱
    mail = db.Column(db.String(20))
    # 是否禁用
    is_disabled = db.Column(db.Boolean, nullable=False, default=False)
    # 是否锁定
    is_locked = db.Column(db.Boolean, nullable=False, default=False)
    # 锁定时间
    locked_date = db.Column(db.DateTime, nullable=True)
    # 登录失败次数
    failed_time = db.Column(db.SmallInteger, nullable=False, default=0)
    # 上次登录失败时间
    last_failed_date = db.Column(db.DateTime, nullable=True)
    # 上次登录成功时间
    last_success_date = db.Column(db.DateTime, nullable=True)
    # 备注
    remark = db.Column(db.String(50))
    # 创建时间
    created_date = db.Column(db.DateTime, nullable=False, default=datetime.datetime.now)
    # 创建人
    created_by = db.Column(db.String(20), nullable=False)
    # 更新时间
    updated_date = db.Column(db.DateTime, default=datetime.datetime.now)
    # 更新人
    updated_by = db.Column(db.String(20))
